Today's computing devices typically include a motherboard carrying a processor, multiple memory modules for supplying data to the processor, and a memory controller for controlling read/write operations between the processor and the memory modules. As the speed of the processor increases, the speed of read/write operations between the processor and the memory modules can create a bottleneck that makes it difficult to supply a sufficient amount of data to the processor for execution.
One solution is to increase the speed of read/write operations by, for example, raising the operating frequency of the memory modules. As the operating frequency increases, more read/write operations can be performed in a period of time, resulting in increased system speed. However, as the operating frequency increases, transmission errors can occur during read/write operations. For example, the processor can transmit an address to the memory modules to read data from a memory location corresponding to the transmitted address. Many conditions, such as power supply fluctuation, faulty bus connection, memory module failure, transmission crosstalk, etc., can corrupt the transmitted address to result in reading data from an incorrect memory location. Accordingly, there is a need for detecting and correcting transmission errors between the processor and the memory modules to achieve increased overall system performance.